﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RegistroMascotas.Modelo;
using Service;

namespace RegistroMascotas
{
    public partial class mascota_alta : System.Web.UI.Page
    {
        Mascota _miMascota = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bienvenido2.Text = "Bienvenido/a Dr/a. " + User.Identity.Name;
                mascotaizq.Visible = true;
                mascotader.Visible = true;
                panelOculto.Visible = false;
                cargarEstados();
                cargarZoonosis();
            }
        }

        private void cargarEstados()
        {
            ddl_estado.Items.Add(EstadoMascota.En_Adopción.ToString());
            ddl_estado.Items.Add(EstadoMascota.Con_Dueño.ToString());
            ddl_estado.Items.Add(EstadoMascota.Perdido.ToString());
            //ddl_estado.Items.Add(EstadoMascota.Fallecido.ToString());
        }

        private void cargarZoonosis() {
            List<Centro> zoonosis = null;
            
            try
            {
                zoonosis = GestorDeBusqueda.obtenerZoos();
                ddl_cual.Items.Clear();

                ddl_cual.Items.Add("Ninguna");

                foreach(Centro zoo in zoonosis){
                    ddl_cual.Items.Add(zoo.Nombre);
                }
            }
            catch (Exception ex)
            {
                btnCargarHistoriaClinica.Visible = false;
                lblError.Text = ex.Message;
                lblError.CssClass = "errores";
                panelOculto.Visible = true;
            }
        }

        protected void btnGuardarCambios_Click(object sender, EventArgs e)
        {
            _miMascota = new Mascota();

            try
            {
                _miMascota.Nombre = input_nombre.Text;
                _miMascota.Apellido = input_apellido.Text;
                _miMascota.Raza = input_raza.Text;
                _miMascota.Sexo = ddlSexo.SelectedValue;

                if (ddl_zoo.SelectedValue == "No")
                {
                    _miMascota.PasoZoonosis = false;
                    _miMascota.MotivoZoonosis = "Ninguno";
                    _miMascota.NombreZoonosis = "Ninguna";
                }
                else
                {
                    _miMascota.PasoZoonosis = true;
                    _miMascota.MotivoZoonosis = input_porque.Text;
                    _miMascota.NombreZoonosis = ddl_cual.SelectedValue;
                }
                
                _miMascota.CantVecesPerdido = int.Parse(input_perdidas.Text);
                _miMascota.CantSalidasPais = int.Parse(input_salidas_pais.Text);
                _miMascota.CantSalidasProv = int.Parse(input_salidas_provincia.Text);
                _miMascota.Estado = ddl_estado.SelectedValue;
                _miMascota.Caracteristicas = input_caracteristicas.Text;
                
                if (fuMiCuentaImagen.FileName != "" && fuMiCuentaImagen.FileName != null)
                {
                    if (Validaciones.validarSubidaDeImagen(fuMiCuentaImagen, lblError))
                    {
                        string pathTemporal = Server.MapPath("/temp/" + fuMiCuentaImagen.FileName);
                        fuMiCuentaImagen.SaveAs(pathTemporal);

                         _miMascota.Imagen = Validaciones.convertirImagenToString(pathTemporal);                        
                    }
                }

                Session["Mascota"] = null;
                Session["Mascota"] = _miMascota;
                mascotader.Visible = false;
                mascotaizq.Visible = false;
                lblError.Text = "Los datos de la mascota fueron almacenados con éxito. Registre la historia clínica de la mascota para seguir con el proceso.";
                btnCargarHistoriaClinica.Visible = true;
                panelOculto.Visible = true;
            }
            catch (Exception ex)
            {
                mascotader.Visible = false;
                mascotaizq.Visible = false;
                btnCargarHistoriaClinica.Visible = false;
                lblError.Text = ex.Message;
                lblError.CssClass = "errores";
                panelOculto.Visible = true;
            }
        }

        protected void btnCargarHistoriaClinica_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/mascota-historia-clinica-alta.aspx");
        }

        protected void ddl_zoo_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(ddl_zoo.SelectedValue == "1"){
                ddl_cual.Enabled = true;
                input_porque.Enabled = true;
            }else{
                ddl_cual.Enabled = false;
                input_porque.Enabled = false;
            }
        }
    }
}